Skip to content

Life cycle

Alt text

Development lifecycle

  • In order to develop a successful program or suite of programs that is going to be used by others to perform a specific task or solve a given problem, the development needs to be well ordered and clearly documented, so that it can be understood and used by other developers.

  • Here is a brief overview of the program development lifecycle, divided into the five stages:

Alt text

Analysis

  • Before any problem can be solved, it needs to be clearly defined and set out so everyone working on the solution understands what is needed.
  • This is called the requirements specification.
  • The analysis stage often starts with a feasibility study, followed by investigation and fact finding to identify exactly what is required from the program.

Design

  • The program specification from the analysis stage is used to show how the program should be developed.
  • When the design stage is complete, the programmer should know what is to be done, all the tasks that need to be completed, how each task is to be performed and how the tasks work together.
  • This can be formally documented using structure charts, state-transition diagrams and pseudocode.

Coding

  • The program or set of programs is written using a suitable programming language.

Testing

  • The program is run many times with different sets of test data, to test that it does everything it is supposed to do in the way set out in the program design.

Maintenance

  • The program is maintained throughout its life, to ensure it continues to work effectively.
  • This involves dealing with any problems that arise during use, including correcting any errors that come to light, improving the functionality of the program, or adapting the program to meet new requirements.

Development lifecycle

Which one is correct for the software development lifecycle?

(1)Testing (2)Coding (3)Design (4)Maintenance (5)Analysis

[0/2]

TIP

  • Each program development methodology has its own strength.
  • Different models have been developed based on the lifecycle for developers to use in practice.
  • The models we will consider will be divided into the five stages set out above: analysis, design, coding, testing and maintenance.
  • There are three models
    • the waterfall model
    • the iterative model
    • rapid application development (RAD).

The waterfall model

  • This linear sequential development cycle is one of the earliest models used, where each stage is completed and signed off before the next stage is begun.
  • This model is suitable for smaller projects with a short timescale, for which the requirements are well known and unlikely to change.

Alt text

Principles

  • linear, as each stage is completed before the next is begun
  • well documented as full documentation is completed at every stage
  • low customer involvement; only involved at the start and end of the process

Benefits

  • easy to manage, understand and use
  • stages do not overlap and are completed one at a time
  • each stage has specific deliverables
  • works well for smaller programs where requirements are known andunderstood

Drawbacks

  • difficult to change the requirements at a later stage
  • not suitable for programs where the requirements could be subject tochange
  • working program is produced late in the lifecycle
  • not suitable for long, complex projects

Waterfall model

Benefits for waterfall model?

[0/2]

The iterative model

  • This development cycle first develops a simple subset of the requirements, then expands or enhances the model and runs the development cycle again.
  • These program development cycles are repeated until the full system has been developed.
  • This model is suitable for projects for which the major requirements are known but some details are likely to change or evolve with time.

Alt text

Principles

  • incremental development as the program development lifecycle is repeated
  • working programs are produced for part of the system at every iteration
  • high customer involvement, as part of the system can be shown to thecustomer after every iteration

Benefits

  • some working programs developed quickly at an early stage in the life cycle
  • easier to test and debug smaller programs
  • more flexible as easier to alter requirements
  • customers involved at each iteration therefore no surprises when final system delivered

Drawbacks

  • whole system needs to be defined at start, so it can be broken down intopieces to be developed at each iteration
  • needs good planning overall and for every stage
  • not suitable for short simple projects

Iterative model

Benefits for iterative model?

[0/2]

Rapid application development (RAD)

  • This development cycle develops different parts of the requirements in parallel, using prototyping to provide early user involvement in testing.
  • Program development cycles are run in parallel for each part of the requirement, using a number of different teams.
  • Prototyping is often used to show initial versions to customers to obtain early feedback.
  • This model is suitable for complicated projects that need developing in a short timeframe to meet the evolving needs of a business.

Alt text

Principles

  • minimal planning
  • reuses previously written code where possible, makes use ofautomated code generation where possible
  • high customer involvement, as customers can use the prototypesduring development

Benefits

  • reduced overall development time
  • rapid frequent customer feedback informs the development
  • very flexible as requirements evolve from feedback during development
  • as parts of the system are developed side by side, modification iseasier because each part must work independently

Drawbacks

  • system under development needs to be modular
  • needs strong teams of skilled developers
  • not suitable for short simple projects

Rapid application development (RAD)

Benefits for Rapid application development (RAD)?

[0/2]